package com.xdk.templatescala.common.response;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @author jhz
 **/
@Data
public class Page<T> implements Serializable {
    /**
     * 页码
     */
    private Integer pageNum = 1;
    /**
     * 每页的数量
     */
    private Integer pageSize = 10;
    /**
     * 总数量
     */
    private Long totalSize;
    /**
     * 总页数
     */
    private Integer pages;
    /**
     * 分页数据
     */
    private List<T> list;

    /**
     *
     * @param pageNum
     * @param pageSize
     * @param totalSize
     * @param list
     * @param <T>
     * @return
     */
    public static <T> Page<T> build(int pageNum, int pageSize, long totalSize, List<T> list) {
        Page<T> page = new Page<T>();
        page.setPageNum(pageNum);
        page.setPageSize(pageSize);
        int pages = (int)Math.ceil((float)totalSize/pageSize);
        page.setPages(pages);
        page.setTotalSize(totalSize);
        page.setList(list);
        return page;
    }

}

